KISS (algorithm)
   HOME

TheInfoList



OR:

KISS ( Keep it Simple Stupid) is a family of
pseudorandom number generator A pseudorandom number generator (PRNG), also known as a deterministic random bit generator (DRBG), is an algorithm for generating a sequence of numbers whose properties approximate the properties of sequences of random numbers. The PRNG-generate ...
s introduced by
George Marsaglia George Marsaglia (March 12, 1924 – February 15, 2011) was an American mathematician and computer scientist. He is best known for creating the diehard tests, a suite of software for measuring statistical randomness. Research on random numbers ...
. Starting from 1998 Marsaglia posted on various
newsgroups A Usenet newsgroup is a repository usually within the Usenet system, for messages posted from users in different locations using the Internet. They are discussion groups and are not devoted to publishing news. Newsgroups are technically distinc ...
including sci.math,
comp.lang.c The ''comp.*'' hierarchy is a major class of newsgroups in Usenet, containing all newsgroups whose name begins with "''comp.''", organized hierarchically. comp.* groups discuss various computer, technology, and programming issues. Some groups ca ...
, comp.lang.fortran and sci.stat.math several versions of the generators. All KISS generators combine three or four independent random number generators with a view to improving the quality of randomness. KISS generators produce 32-bit or 64-bit random integers, from which random floating-point numbers can be constructed if desired. The original 1993 generator is based on the combination of a
linear congruential generator A linear congruential generator (LCG) is an algorithm that yields a sequence of pseudo-randomized numbers calculated with a discontinuous piecewise linear equation. The method represents one of the oldest and best-known pseudorandom number generat ...
and of two linear feedback shift-register generators. It has a period 295, good speed and good statistical properties; however, it fails the LinearComplexity test in the Crush and BigCrush tests of the
TestU01 TestU01 is a software library, implemented in the ANSI C language, that offers a collection of utilities for the empirical randomness testing of random number generators (RNGs).
suite. A newer version from 1999 is based on a linear congruential generator, a 3-shift linear feedback shift-register and two multiply-with-carry generators. It is 10–20% slower than the 1993 version but has a larger period 2123 and passes all tests in TestU01. In 2009 Marsaglia presented a version based on 64-bit integers (appropriate for 64-bit processors) which combines a multiply-with-carry generator, a
Xorshift Xorshift random number generators, also called shift-register generators, are a class of pseudorandom number generators that were invented by George Marsaglia. They are a subset of linear-feedback shift registers (LFSRs) which allow a particular ...
generator and a linear congruential generator. It has a period of around 2250 (around 1075).


References


Further reading

* * * {{cite journal , last1=Rose , first1=Gregory G. , title=KISS: A bit too simple, journal=Cryptography and Communications , volume=10 , pages=123–137 , year=2017 , issn=1936-2447 , doi=10.1007/s12095-017-0225-x, doi-access=free Pseudorandom number generators